Cloud computing provides computation, capacity, and storage on demand. Typical cloud computing service agreements are based on a self-service usage model which allows a virtually unlimited amount of computing resources to be dynamically requisitioned, on demand, from a pool of shared computing resources offered by a cloud computing vendor.
In typical cloud computing operations, several virtual machines (VMs) will be hosted from each one of many physical hardware infrastructure resources (e.g., server). Multiple physical resources can thus provide the platform with which to virtualize an entire host of virtual machines conceptually and operationally independent from each other. Individual consumers of cloud computing services may lease the processing and storage services of one or more virtual machines, distributed among one or more physical infrastructure resources in a cloud data center. Although this model provides quick and often cheaper access to the resources relative to traditional hardware procurement and configuration, it also presents significant problems for resource management. Paramount among these problems includes a lack of control of, and visibility into, resource configuration and usage.
For example, a typical cloud component featuring virtual machines may offer limited types of virtual servers, and consumers of cloud computing services—that is, the application owners—will not be able to select or customize the specifications of the leased servers. In addition, the application owners have little or no control of or visibility into the underlying physical infrastructure as well.
One of the purported benefits of moving an application to a public cloud is that it cloud computing is more environmentally friendly than standard enterprise data centers. These benefits are theoretically possible because the cloud servers have a higher-utilization rates (due to the non-proportional energy consumption of modern servers), and cloud data centers typically operate more efficiently than their standard physical counterparts. Because modern servers do not generally consume energy proportional to their utilization (for example, an idle server could still consume around 60% of the energy consumed during heavy activity), a higher utilization directly translates into lower energy consumption and thus, smaller environmental impact. Since the incremental energy consumption is relatively small for additional loads, it is beneficial to increase the server utilization as much as possible.
Beyond the benefits to the environment, increasing utilization may also carry a significant financial benefit. A large data center—such as that operated by a cloud—may require many megawatts of electricity, and even a small percentage improvement in efficiency could translate into a large cost savings for its operators. Moreover, a cloud can run its data center facility more efficiently. This is both due to its scale and due to the fact that operating a data center is its core competence. For example, a cloud data center could have a more optimized rack space layout, a more streamlined cooling airflow, and a more efficient air conditioning system.
While in the aggregate each of these propositions may be true, for individual cloud computing clients however, any such purported benefits may be offset by sharing physical resources with anonymous fellow consumers who may consume or require a disproportionately greater share of the underlying physical infrastructure. If this behavior becomes routine or frequent, a cloud computing consumer paying for service from a virtual machine hosted on the same physical infrastructure may have its services severely and negatively impacted. However, due to the lack of visibility and accessibility into the underlying cloud infrastructure, the exact source of the problem may be tremendously difficult to diagnose with any degree of accuracy.